<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

   <title>DREAM Toolbox - generateOffspring</title>

   <meta name="keywords" content="generateoffspring">

   <meta name="description" content="generateoffspring">

   <meta http-equiv="Content-Type" content="text/html">
  
   <meta name="robots" content="index, follow">

   <meta author="Jurriaan H. Spaaks">
   <meta author="Diana Gorea">

   <link type="text/css" rel="stylesheet" href="styles/dream_styles.css">
 
</head>



<body>
<a name="_top"></a>

<div class="linkheader">
<a href="matlab:edit(fullfile(dreamroot,'generateoffspring'))">View source code of the function <span style="font-family:monospace">generateoffspring()</span> in the MATLAB editor</a><br><br>
<a href="matlab:web(fullfile(dreamroot,'html','contents.html'),'-helpbrowser')">Toolbox contents</a>
</div>

<div class="spacer">
</div>


<div class="h1">
generateOffspring
</div>

<div class="h2">
Syntax
</div>

<div class="txt">
<code>[propChild, crtCrossoverValues, alphaSnooker] = generateOffspring(dreamPar,lastPointsFromEverySeq, crtPastPoints, jumpRateTable, crtCrossoverValues)</code>
</div>

<div class="h2">
Input arguments
</div>

<div class="txt">
<ul>
<li><span style="font-family:monospace">dreamPar</span> is a structure containing the parameters of the DREAM algorithm.
<li><span class="code">lastPointsFromEverySeq</span> is a matrix with <span class = "code">dreamPar.nSeq</span> rows containing the current points in each of the chains.
<li><span class="code">jumpRateTable</span> is a matrix of <span class = "code">dreamPar.nDiffEvolPairs x dreamPar.nOptPars</span> 
elements containing the jump rates.
<li><span style="font-family:monospace">crtCrossoverValues</span> is a <span class="code">dreamPar.nSeq x 1 </span>
array that contains the crossover probabilities for the current generation.
</ul>
</div>

<div class="h2">
Output arguments
</div>

<div class="txt">
<ul>
<li><span style="font-family:monospace">propChild</span> contains the proposed points in each of the chains.
<li><span style="font-family:monospace">crtCrossoverValues</span> contains the updated crossover probabilities for the current generation.
<li><span style="font-family:monospace">alphaSnooker</span> .
</ul>
</div>

<div class="h2">
Description
</div>
<div class="txt">
Generates a new candidate point in every chain using a differential evolution approach.

Jumps in each chain <code>i = 1,...,N</code> are generated by taking a fixed multiple of 
the difference of two randomly chosen current points in the set of current and past points (Z).

Depending on the value of dreamPar.parallelUpdateFraction and on a uniformly random drawn value, a parallel update of a "snooker" 
update is executed.
The parallel updater does not require information about the current states of the chains. This is of great advantage in a 
 multi-processor environment where the candidate points can be generated simultaneously so  that each chain can evolve most
 efficiently on a different computer.
 The snooker updater  maximizes the diversity of candidate points and generates jumps beyond parallel direction updates. 
</div>


<div class="footer">
</div>


<div class="spacer">
</div>


<a name="_bottom"></a>


</body>

</html>